package model

type CommonResponse struct {
	Code int `json:"error"`

	Msg string `json:"msg"`

	Data interface{} `json:"data"`
}

// 登录响应
type LoginResponse struct {
	Code int `json:"error"`

	Msg string `json:"msg"`

	Data LoginResult `json:"data"`
}

type RefreshTokenResponse struct {
	Code int `json:"error"`

	Msg string `json:"msg"`

	Data RefreshTokenResult `json:"data"`
}

// 首页响应
type HomeResponse struct {
	Code int `json:"error"`

	Msg string `json:"msg"`

	Data HomeResult `json:"data"`
}

type ThingsResponse struct {
	Code int `json:"error"`

	Msg string `json:"msg"`

	Data ThingInfo `json:"data"`
}

// 长链接信息
type DispatchResponse struct {
	IP string `json:"IP"`

	Port int `json:"port"`

	Reason string `json:"reason"`

	Domain string `json:"domain"`

	Code int `json:"error"`
}

// websocket握手响应
type HandshakeResponse struct {
	Code int `json:"error"`

	// 用户 apikey
	Apikey string `json:"apikey"`

	// 时间戳精确到毫秒
	Sequence int64 `json:"sequence,string"`

	// 配置信息
	Config SocketConfig `json:"config"`
}

// websocket 配置
type SocketConfig struct {
	// 心跳开关，是否需要发送心跳。0: 不需要， 1: 需要
	HB int `json:"hb"`

	// 心跳间隔，以秒为单位，客户端可以把这个值减上 7 作为间隔时间发送保持存活 ping 心跳，如果为空，默认以 90 秒为间隔发送。
	HbInterval int `json:"hbInterval"`
}
